Sometimes it is required to assign time on events recorded on devices without permanent network connectivity and unreliable real time clock. Assigning accurate timestamp on events that occur in a client device that does not have a reliable real time clock (RTC) or permanent network connectivity presents unique challenges. On the one hand, the use of the client device RTC allows measuring time intervals with relative precisions, but does not help much with assigning timestamps to the events that occur. Also RTC resolution is usually not sufficient to reconstruct the chronological order of the events on the device. In addition, the RTC time can be changed by user interaction or by other events while the client device is being operated.